package com.mindskip.xzs.viewmodel.wx.student.qywx;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author guoguangkai
 * @since 2022/9/16
 */
@Data
@Accessors(chain = true)
public class MiniProgramNotice implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 成员ID列表（消息接收者，多个接收者用‘|’分隔，最多支持1000个）
     * "zhangsan|lisi"
     */
    private String touser;
    /**
     * 部门ID列表，多个接收者用‘|’分隔，最多支持100个。
     * "1|2"
     */
    private String toparty;
    /**
     * 标签ID列表，多个接收者用‘|’分隔，最多支持100个。
     * "1|2"
     */
    private String totag;
    /**
     * 消息类型
     * "miniprogram_notice"
     */
    private String msgtype;
    /**
     * 推送主体
     */
    private Notice miniprogram_notice;

    @Data
    @Accessors(chain = true)
    public static class Notice{
        /**
         * 小程序appid，必须是与当前应用关联的小程序
         * "wx123123123123123"
         */
        private String appid;
        /**
         * 点击消息卡片后的小程序页面，最长1024个字节，仅限本小程序内的页面。该字段不填则消息点击后不跳转。
         * "pages/index?userid=zhangsan&orderid=123123123"
         */
        private String page;
        /**
         * 消息标题，长度限制4-12个汉字（支持id转译）
         * "会议室预订成功通知"
         */
        private String title;
        /**
         * 消息描述，长度限制4-12个汉字（支持id转译）
         * "4月27日 16:16"
         */
        private String description;
        /**
         * 是否放大第一个content_item
         * true
         */
        private Boolean emphasis_first_item;
        /**
         * 消息内容键值对，最多允许10个item
         *  [
         *      {
         *          "key": "会议室",
         *          "value": "402"
         *      },
         *      {
         *          "key": "会议地点",
         *          "value": "广州TIT-402会议室"
         *      },
         *      {
         *          "key": "会议时间",
         *          "value": "2018年8月1日 09:00-09:30"
         *      },
         *      {
         *          "key": "参与人员",
         *          "value": "周剑轩"
         *      }
         *  ]
         */
        private List<KeyVal> content_item;

        @Data
        @Accessors(chain = true)
        public static class KeyVal {
            /**
             * 长度10个汉字以内
             */
            private String key;
            /**
             * 长度30个汉字以内（支持id转译）
             */
            private String value;
        }
    }
    /**
     * 表示是否开启id转译，0表示否，1表示是，默认0
     * 0
     */
    private Integer enable_id_trans;
    /**
     * 表示是否开启重复消息检查，0表示否，1表示是，默认0
     * 0
     */
    private Integer enable_duplicate_check;
    /**
     * 表示是否重复消息检查的时间间隔，默认1800s，最大不超过4小时
     * 1800
     */
    private Integer duplicate_check_interval;
}
